package exercicio02;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.List;

import javax.servlet.ServletContext;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@WebServlet("/livro")
public class LivroDeVisitas extends HttpServlet {

	private static final long serialVersionUID = 1821083866696780261L;

	public void doGet(HttpServletRequest request, HttpServletResponse response) {
		processar(request, response);
	}

	public void doPost(HttpServletRequest request, HttpServletResponse response) {
		processar(request, response);
	}		
	
	public void processar(HttpServletRequest request, HttpServletResponse response) {
		
		PrintWriter out;
		String nome = request.getParameter("nome");
		String mensagem = request.getParameter("mensagem");
		List<String> listaDeRecados = new ArrayList<String>();
		
		ServletContext contexto = this.getServletContext();
		
		if ( contexto.getAttribute("recados") == null ) {
			contexto.setAttribute("recados", listaDeRecados);
		} else {
			listaDeRecados = (List<String>) contexto.getAttribute("recados");
		}
		
		if (nome != null && mensagem != null) {
			listaDeRecados.add("Nome: " + nome + " <br> Mensagem: " + mensagem);			
		}
		
		try {
			out = response.getWriter();
			response.setContentType("text/html");
			
			out.println("<html>");
			out.println("<body>");
			out.println("<h1>Livro de Visitas</h1>");
			
			out.println("<h2>Recados</h2>");
			
			for(String recado :  listaDeRecados) {
				out.println("<h3>" + recado + "</h3>");
			}		
			
			out.println("<form action=\"livro\" method=\"post\">");
			out.println("Nome: <input type=\"text\" name=\"nome\" ><br>");
			out.println("Mensagem: <input type=\"text\" name=\"mensagem\" ><br>");
			out.println("<input type=\"submit\" value=\"Submit\" ><br>");
			out.println("</form>");
			
			out.println("</body>");
			out.println("</html>");
			
			out.close();
			
		} catch (IOException e) {
			e.printStackTrace();
		}
		
	}
	
}
